package com.ruibang.glass.purchase.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruibang.glass.common.domain.camunda.BpmProcessInstanceCreate;
import com.ruibang.glass.purchase.domain.req.PurchaseApprovalReq;
import com.ruibang.glass.purchase.domain.req.PurchaseDullnessReq;
import com.ruibang.glass.purchase.entity.PurchaseApprovalList;

import java.util.List;

/**
 * <p>
 * 采购审批列表 服务类
 * </p>
 *
 * @author mameng
 * @since 2024-04-17
 */
public interface PurchaseApprovalListService extends IService<PurchaseApprovalList> {
    /**
     * 流程添加
     *
     * @param purchaseApprovalList
     */
    void addPurchaseApprovalList(PurchaseApprovalList purchaseApprovalList);


    /**
     * 发起立项审批
     *
     * @param bpmProcessInstanceCreate
     */
    void approveProject(BpmProcessInstanceCreate bpmProcessInstanceCreate);


    void processNotice(String businessId);

    String getSequenceNumber();

    /**
     * 采购审批列表 查询
     *
     * @param
     */
    IPage<PurchaseApprovalList> queryPage(PurchaseApprovalReq purchaseApprovalReq);

    PurchaseApprovalList getInfoByNumber(String number);

    void updatePurchaseApprovalList(PurchaseApprovalList purchaseApprovalList);


    PurchaseApprovalList getPurchaseApprovalList(String id);

    void updatePurchaseApprovalBYDelete(PurchaseApprovalList purchaseApprovalList);

    void addPurchaseDetail(PurchaseApprovalList purchaseApprovalList);


    Page<PurchaseApprovalList> dullnessList(PurchaseDullnessReq purchaseDullnessReq);


    String getApproveSequenceNumber();

    List<PurchaseApprovalList> getProjectNameList();

    List<PurchaseApprovalList> getContractsProject();

    List<PurchaseApprovalList> getFrameContractsProject();

    List<PurchaseApprovalList> getReportProject();
}
